// components/test3/test3.js
Component({
  //
  options: {
    //改造为纯数据的正则
    pureDataPattern: /^_/
  },

  /**
   * 组件的属性列表
   */
  properties: {

  },

  /**
   * 组件的初始数据
   */
  data: {
    _rgb: {
      r: 0,//相当于计算要素
      g: 0,
      b: 0,
    },
    fullColor: '0,0,0' //相当于计算结果
  },

  /**
   * 组件的方法列表
   */
  methods: {
    addR: function () {
      this.setData({
        '_rgb.r': this.data._rgb.r + 5 > 255 ? 255 : this.data._rgb.r + 5
      })
    },

    addG: function () {
      this.setData({
        '_rgb.g': this.data._rgb.g + 5 > 255 ? 255 : this.data._rgb.g + 5
      })
    },

    addB: function () {
      this.setData({
        //边界处理：+5>5时永远等于255，否则+5
        '_rgb.b': this.data._rgb.b + 5 > 255 ? 255 : this.data._rgb.b + 5
      })
    },

    reduceR: function () {
      this.setData({
        '_rgb.r': this.data._rgb.r - 5 < 0 ? 255 : this.data._rgb.r - 5
      })
    },

    reduceG: function () {
      this.setData({
        '_rgb.g': this.data._rgb.g - 5 < 0 ? 255 : this.data._rgb.g - 5
      })
    },

    reduceB: function () {
      this.setData({
        //边界处理：-5<0时永远等于255，否则-5
        '_rgb.b': this.data._rgb.b - 5 < 0 ? 255 : this.data._rgb.b - 5
      })
    },

    _randomColor:function(){
      this.setData({
        _rgb:{
          r:Math.floor(Math.random()*256),
          g:Math.floor(Math.random()*256),
          b:Math.floor(Math.random()*256),
        }
      })
    },
  },
  observers: {
    //   '_rgb.r,_rgb.g,_rgb.b':function(r,g,b){
    //     this.setData({
    //       fullColor:`${r},${g},${b}`
    //     })
    //   }
    // }

    //通配符方式
    '_rgb.**': function (obj) {
      this.setData({
        fullColor: `${obj.r},${obj.g},${obj.b}`
      })
    }
  },

  lifetimes:{
    created:function(){
      console.log('created~~')
    },
    attached:function(){
      console.log('attached~~')
    }
  },

  pageLifetimes:{
    show(){
      // console.log('show~~')
      this._randomColor();
    },
    hide(){
      console.log('hide~~')
    },
    resize(){
      console.log('resize~~')
    },
  },
})
